package src.itheima05;


import java.util.Arrays;

/*
    冒泡排序:
        1.原理: 每次都从第一个元素(索引0),向后两两比较,只要前面的元素大于后面的元素,就交换
        2.总结:
            (1) 5个数,需要排4趟,n个数,需要排n-1趟
            (2)每趟排序的次数,比上一趟少1次
            (3)规律:

            	第一趟			 第二趟			 第三趟      第四趟
                [0] vs [1]		[0] vs [1]		[0] vs [1]	[0] vs [1]
                [1] vs [2]		[1] vs [2]		[1] vs [2]
                [2] vs [3]		[2] vs [3]
                [3] vs [4]
 */
public class Demo06BubbleSort {
    public static void main(String[] args) {
        int[] arr = {7,4,9,0,3};
        System.out.println("排序前: "+ Arrays.toString(arr));//[7, 6, 5, 4, 3]

        /*for(int i = 0;i<arr.length-1;i++) {//外层循环,代表趟数,5个数,排4趟,n个数,排n-1趟
            for(int j = 0;j<arr.length-1-i;j++) {//每趟排序的次数,-i: 每趟都比上一趟,少比1次  -1: 为了防止索引越界
                //j<length && j+1<length  ===> j<length-1
                if((arr[j+1] - arr[j])>0) {
                    //交换数组元素
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        System.out.println("排序后: "+ Arrays.toString(arr));//[3, 4, 5, 6, 7]*/

        for (int i=0;i<arr.length-1;i++){
            for (int j=0;j<arr.length-1-i;j++){
                if((arr[j+1]-arr[j])>0){
                    int a=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=a;
                }
            }
        }
        System.out.println(Arrays.toString(arr));

    }
}
